//
//  LPXScrollView.swift
//  闭包
//
//  Created by Summer on 2017/11/6.
//  Copyright © 2017年 Summer. All rights reserved.
//

import UIKit

class LPXScrollView: UIScrollView {
    
    // 在swift中，函数支持重载，即方法名一样，参数数量和类型不同
    // initWithFrame 纯代码开发会用到
    // 
    init(frame: CGRect, nummber: ()->Int, labelOfIndex: (_ index: Int)->UILabel) {
        super.init(frame: frame)
        backgroundColor = UIColor.lightGray
        
        // 2.指定标签label数量
        // 执行闭包number()，获得返回值为10，继续后续的代码
        let count = nummber()
        print("标签数量：\(count)")
        
        // 3.知道标签内容，添加到scrollView
        // 遍历count
        
        let margin:CGFloat = 10
        var labelX = margin
        
        
        for i in 0..<count {
            // 执行闭包，获得label
            let label = labelOfIndex(i)
            
            label.frame = CGRect(x: labelX, y: 0, width: label.bounds.width, height: frame.height)
            addSubview(label)
            labelX += label.bounds.width
        }
        contentSize = CGSize(width: labelX + margin, height: 0)
        // 4.返回scrollView，在swift中，构造函数不需要返回值
        
    }
    
    // UIViewController有一个函数，initWithCoder()，使用storyboard和xib开发的时候会被调用
    // 自定义视图中必须要实现的方法
    required init?(coder aDecoder: NSCoder) {
        // fatalError 函数会让storyboard开发直接崩掉
        fatalError("init(coder:) has not been implemented")
    }
    
}
